package ru.averta.notes.service.search;

import java.util.Collection;

/**
 * <code>SubjectCriteriaBean</code>
 *
 * Объединяет методы, используемые для поиска subject'ов
 *
 * @author fedor.belov (fedor.belov@mail.ru)
 *         Date: 23.09.11 14:44
 */
public interface SubjectCriteriaBean {

    /**
     * Возвращает запрос на полнотекстовый поиск
     * @return
     */
    public String getFullText();

    /**
     * Возвращает область поиска
     * @return
     */
    public SubjectFilterTarget getTarget();

    /**
     * Возвращает коллекцию тегов, по которым необходимо произвести поиск
     * @return
     */
    public Collection<String> getFilterTags();

    /**
     * Возвращает true, если искать нужно только по favorite
     * @return
     */
    public boolean isFilterFavorite();

    enum SubjectFilterTarget {
        All, Inbox, Archive;
    }
}
